Dartの公式Linterの”lints”を導入してクォートのlintをしてみた
こんにちは、CX事業本部 Delivery部の若槻です。
最近知ったのですが、Dartにはlintsという公式提供のLinterがあります。
今回は、lintsを導入して「文字列の記述でダブルクォートの使用を違反対象とする」lint設定をしてみました。
やってみた
導入
dart pub add --dev lints
analysis_options.yamlファイル作成
analysis_options.yaml
ファイルを作成し、次のように記述します。(analysis_options.yaml
はflutter create
コマンドを実行でも自動作成されます。)
include: package:lints/recommended.yaml linter: rules: - prefer_single_quotes
1項目目のinclude
では、Linterとして使用するパッケージと設定を指定します。lintsでは次の2つが指定可能です。
- Core lints:重大な問題を引き起こす可能性のある記述のみを違反対象とするLint rule。
package:lints/core.yaml
を指定して有効化する。 - Recommended lints:Core lintsの違反対象に加えて、慣用的なスタイルと形式での記述を強制するLint rule。
package:lints/recommended.yaml
を指定して有効化する。
今回は後者のRecommended lintsを指定します。
2項目のlinter.rules
では、有効にするLint Ruleを指定します。Rule一覧は下記で確認できます。
今回は文字列の記述でダブルクォートの使用を違反対象としたいのでprefer_single_quotes
を有効化します。
動作確認
Visual Studio Codeで動作を確認をします。
.dart
ファイルで文字列をダブルクォートで囲って記述すると、違反している記述が注釈されるようになりました。
またdart analyze
コマンドを実行すると、Lint違反している記述位置および違反しているRuleの一覧が出力できました。
$ dart analyze . Analyzing .... 1.6s info • lib/hoge.dart:1:9 • Only use double quotes for strings containing single quotes. • prefer_single_quotes 1 issues found.
ちなみにdart analyze
コマンドではinfoレベルの出力は終了コードが0
となります。
$ echo $? 0
Lint違反の場合に終了コードを0
以外としたい場合は--fatal-infos
オプションを使用します。
$ dart analyze . --fatal-infos $ echo $? 1
これを利用すればCI/CDパイプラインなどでLint違反時にCI実行をFailさせることができます。
参考
以上